Code for content view:
@Environment(\.managedObjectContext) private var viewContext
@FetchRequest(
entity: Item.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \Item.time, ascending: true)],
animation: .default)
private var items: FetchedResultsItem
NavigationView {
List {
Section(header:
Text("One-Time Meetings")
.textCase(nil)
.font(.headline)
.onAppear {
checkForUpdate()
}
) {
ForEach(items, id: \.self) { item in
OneTimeRow(meeting: item)
}
.onDelete(perform: deleteItems, removeSingleNotification(meetingID: "\(item.meetingLink)"))
}
private func deleteItems(offsets: IndexSet) {
withAnimation {
offsets.map { items[$0] }.forEach(viewContext.delete)
do {
try viewContext.save()
} catch {
print("There was an error deleting items")
}
}
}
private func removeSingleNotification(meetingID: String) {
notificationManager.removePendingNotificationRequests(meetingID: meetingID)
print("Deleted notification scheduled for meeting with identifier \(meetingID)")
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: